/*
 * @(#)UpdateAlert.java
 *
 * Copyright (c) 2003 DCIVision Ltd
 * All rights reserved.
 *
 * This software is the confidential and proprietary information of DCIVision
 * Ltd ("Confidential Information").  You shall not disclose such Confidential
 * Information and shall use it only in accordance with the terms of the license
 * agreement you entered into with DCIVision Ltd.
 */
package com.dcivision.alert.bean;

import java.sql.Timestamp;

import com.dcivision.framework.bean.AbstractBaseObject;

/**
  UpdateAlert.java

  This class is the serializable bean reflecting business logic uses.

    @author           Scott Tong
    @company          DCIVision Limited
    @creation date    21/08/2003
    @version          $Revision: 1.43 $
*/

public class UpdateAlert extends AbstractBaseObject {

  public static final String REVISION = "$Revision: 1.43 $";

  static final long serialVersionUID = 766801373720126026L;

  public static final String SEPARATOR = ",";

  /*Alert Object Types*/
  public static final String DOCUMENT_TYPE = "D";
  public static final String ISSUE_TYPE = "I";
  public static final String CALENDAR_TYPE = "C";
  public static final String WORKFLOW_TYPE = "W";
  public static final String DELEGATION_TYPE = "U"; //user delegation
  public static final String CALENDAR_MODIFY_TYPE = "Y";
  public static final String CALENDAR_INACTIVE_TYPE = "N";
  public static final String AUTOMATE_CHECKIN = "A";//automate checkIn
  public static final String EMAIL_ARCHIVE_TYPE = "E";
  /*Alert Typs*/
  public static final String ALERT_TYPE = "A";
  public static final String INVITE_TYPE = "I";


  /* Alert Action types */
  public static final String CREATE_ACTION = "C";
  public static final String CREATE_SHORTCUT_ACTION = "S";
  public static final String UPDATE_ACTION = "U";
  public static final String DELETE_ACTION = "D";
  public static final String DELETE_SHORTCUT_ACTION = "X";
  public static final String VIEW_ACTION = "V";
  public static final String INVITE_ACTION = "I";
  public static final String REMIND_ACTION = "R";
  public static final String NOTIFY_TASK_COMPLETED_ACTION = "1";
  public static final String NOTIFY_TASK_ARRIVED_ACTION = "2";
  public static final String NOTIFY_TASK_OWNER_OVERDUE_ACTION = "3";
  public static final String NOTIFY_TASK_ALL_OVERDUE_ACTION = "4";
  public static final String NOTIFY_STOP_TRACK = "5";
  public static final String DELEGATION_ACTION = "d";
  public static final String MODIFY_RELATED_DOC="M";
  public static final String NOTIFY_DELEGATION_USER = "6";
  public static final String DISCUSS_ACTION = "7";
  public static final String NOTIFY_TASK_PRIORITY_CHANGED = "8";
  public static final String NOTIFY_BEFORE_DUE_DATE = "9";
  public static final String NOTIFY_TASK_PENDING_FOR = "P";
  public static final String NOTIFY_TASK_IN_PROGRESSING = "J";
  public static final String NOTIFY_TASK_CHECK_OUT_BY_USER="B";
  public static final String NOTIFY_TASK_COMPLETED_BY_USER="b";
  
  public static final String NOTIFY_TASK_APPROVED="10";
  public static final String NOTIFY_TASK_REJECT="11";
  public static final String NOTIFY_TASK_YES="12";
  public static final String NOTIFY_TASK_NO="13";
  public static final String NOTIFY_TASK_DECISION="S"; 
  
  public static final String MOVE_ACTION="O";
  public static final String EMAIL_ARCHIVE_EMAIL_RECIVE_ACTION = "E";

  /* Notification Types */
  public static final String EMAIL_NOTIFICATION = "E";
  public static final String SYSTEM_NOTIFICATION = "S";

  /*Audience Types*/
  public static final String USER_RECIPIENT = "U";
  public static final String ROLE_RECIPIENT = "R";
  public static final String GROUP_RECIPIENT = "G";
  public static final String CONTACT_RECIPIENT="C";
  public static final String CONTACT_PERSON = "P";

  public static final String ACCEPT_ON_REPLY = "A";
  public static final String TENTATIVE_ON_REPLY = "T";
  public static final String REJECT_ON_REPLY = "R";

  /* Alert Time Types */
  public static final String SECOND = "A";
  public static final String MINUTE = "B";
  public static final String HOUR = "C";
  public static final String DAY = "D";
  public static final String WEEK = "E";
  public static final String MONTH = "F";
  public static final String YEAR = "G";

  public static final String EXTERNAL_EMAIL = "E";

  public static final String DOCUMENT_INVITATION_CANCEL = "IC";

  public static final String DOCUMENT_INVITATION_EXPIRED = "IE";

  public static final String DOCUMENT_INVITATION_UPDATE_DUEDATE = "ID";

  public static final String STATUS_CANCEL = "C";

  private String objectType = null;
  private Integer objectID = null;
  private Integer alertTime = null;
  private String alertTimeType = null;
  private String alertSubject = null;
  private Timestamp dueDate = null;
  private String message = null;
  private String status = null;
  private String recurEvent = null;
  private String alertType = null;

  //Options for delete old system logs when update/delete
  private boolean bClearLogs = false;
  
  private String notifySelf = null;

  public UpdateAlert() {
    super();
  }

  public String getObjectType() {
    return(this.objectType);
  }

  public void setObjectType(String objectType) {
    this.objectType = objectType;
  }

  public Integer getObjectID() {
    return(this.objectID);
  }

  public void setObjectID(Integer objectID) {
    this.objectID = objectID;
  }

  public Integer getAlertTime() {
    return(this.alertTime);
  }

  public void setAlertTime(Integer alertTime) {
    this.alertTime = alertTime;
  }

  public String getAlertTimeType() {
    return(this.alertTimeType);
  }

  public void setAlertTimeType(String alertTimeType) {
    this.alertTimeType = alertTimeType;
  }

  public Timestamp getDueDate() {
    return(this.dueDate);
  }

  public void setDueDate(Timestamp dueDate) {
    this.dueDate = dueDate;
  }

  public String getMessage() {
    return(this.message);
  }

  public void setMessage(String message) {
    this.message = message;
  }

  public String getStatus() {
    return(this.status);
  }

  public void setStatus(String status) {
    this.status = status;
  }

  public String getRecurEvent() {
    return(this.recurEvent);
  }

  public void setRecurEvent(String recurEvent) {
    this.recurEvent = recurEvent;
  }

  public boolean getClearLogs() {
    return this.bClearLogs;
  }

  public void setClearLogs(boolean bClearLogs) {
    this.bClearLogs = bClearLogs;
  }
  public String getAlertType() {
    return(this.alertType);
  }

  public void setAlertType(String alertType) {
    this.alertType = alertType;
  }

	public String getNotifySelf() {
		return notifySelf;
	}

	public void setNotifySelf(String notifySelf) {
		this.notifySelf = notifySelf;
	}

  public String getAlertSubject() {
    return alertSubject;
  }

  public void setAlertSubject(String alertSubject) {
    this.alertSubject = alertSubject;
  }

}
